/*
 * 文件名：ExpUserController.java
 * 版权：Copyright 2006-2013 lvxh Tech. Co. Ltd. All Rights Reserved. 
 * 描述： ExpUserController.java
 * 修改人：lxh
 * 修改时间：2013年9月26日
 * 修改内容：新增
 */
package com.lvxh.exp.system.controller;

import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.lvxh.exp.bean.BaseController;
import com.lvxh.exp.bean.GridResultHolder;
import com.lvxh.exp.expmemo.dao.holder.Expmemo;
import com.lvxh.exp.expmenu.dao.holder.Expmenu;
import com.lvxh.exp.expmenu.service.ExpmenuService;

/**
 * TODO 添加类的一句话简单描述。
 * <p>
 * TODO 详细描述
 * <p>
 * TODO 示例代码
 * 
 * <pre>
 * </pre>
 * 
 * @author lxh
 * @version expweb 1.0.0 2013年9月26日
 * @since expweb 1.0.0
 */
@Controller
public class ExpUserController extends BaseController
{
    /**
     * 调测日志记录器。
     */
    private static final Logger log = Logger.getLogger(ExpUserController.class);

    @Autowired(required = true)
    private ExpmenuService menuService;

    @RequestMapping("/dologin")
    public ModelAndView dologin(Integer nativid)
    {
        log.debug("start method  doLogin");
        if (nativid == null)
        {
            nativid = 1;
        }
        Expmenu menu = new Expmenu();
        //menu.setParentid(0);
        @SuppressWarnings("unchecked")
        List<Expmenu> list = (List<Expmenu>) getSession().getAttribute(
                "menuList");

        if (list == null)
        {
            list = menuService.getList(menu);
//            for (int i = 0; i < list.size(); i++)
//            {
//                list.get(i).setName(getMessage(list.get(i).getName().trim()));
//            }

        }
//        for (int i = 0; i < list.size(); i++)
//        {
//            if (list.get(i).getId().equals(nativid))
//            {
//                list.get(i).setActive(1);
//
//            }
//            else
//            {
//                list.get(i).setActive(0);
//            }
//        }

//        List<Expmenu> lists = menuService.getList(new Expmenu());
        getSession().setAttribute("menuList", list);
        getSession().setAttribute("nativid", nativid);
//        getSession().setAttribute("allMenu", lists);

        if(1 == nativid)
        {
            return new ModelAndView("user/welcome");
            
        }
        else
        {
            return new ModelAndView("expmemo/viewExpmemo");
        }

    }

    public void initMenuList(List<Expmenu> list)
    {
        // List<Expmenu> list = mapper.selectAll();
        for (int i = 0; i < list.size(); i++)
        {
            for (int k = 0; k < list.size(); k++)
            {
                if (list.get(i).getId().equals(list.get(k).getParentid()))
                {
                    list.get(i).getList().add(list.get(k));
                    list.get(i).setHaveChild(1);
                }
            }
            list.get(i).setName(getMessage(list.get(i).getName().trim()));
            if (!"1".equals(list.get(i).getUrl()))
            {
                list.get(i).setUrl(
                        getRequest().getContextPath() + "/"
                                + list.get(i).getUrl());
            }

            // list.get(index)

        }
        // StringBuffer buf = new StringBuffer();
        // parseMenuList(list, buf, 1);
        // return buf.toString();
    }
    @RequestMapping("/setMenuParam")
    @ResponseBody
    public GridResultHolder setMenuParam(String menuid,String parentmenuid)
    {
        log.info("start method getGrid");
        GridResultHolder result = new GridResultHolder();
        getSession().setAttribute("menuid", menuid);
        getSession().setAttribute("parentmenuid", parentmenuid);
        log.info("end method getGrid");
        return result;
    }

    private void parseMenuList(List<Expmenu> list, StringBuffer buf, int level)
    {
        for (int i = 0; i < list.size(); i++)
        {
            Expmenu menu = list.get(i);
            if (menu.getLevel() == level)
            {
                if (menu.getList().isEmpty())
                {
                    if (menu.getUrl() == null || "".equals(menu.getUrl()))
                    {
                        buf.append("<li><a href='javascript:void(0);'/>");
                        buf.append(getMessage(menu.getName()));
                        buf.append("</a></li>");
                    }
                    else
                    {
                        buf.append("<li><a href=\"javascript:void(0);\" onclick=\"expForm('");
                        buf.append("/" + getRequest().getContextPath() + "/"
                                + menu.getUrl());
                        buf.append("');\">");
                        buf.append(getMessage(menu.getName()));
                        buf.append("</a></li>");
                    }
                }
                else
                {
                    // if(menu.getUrl() == null || "".equals(menu.getUrl()))
                    // {
                    buf.append("<li><a href='javascript:void(0);'/>");
                    buf.append(getMessage(menu.getName()));
                    buf.append("</a>");
                    buf.append("<ul>");
                    parseMenuList(menu.getList(), buf, level + 1);
                    buf.append("</ul>");
                    buf.append("</li>");
                    // }
                    // else
                    // {
                    // buf.append("<li><a href=\"javascript:void(0);\" onclick=\"expForm('<c:url value=");
                    // buf.append(menu.getUrl());
                    // buf.append("/>');\">");
                    // buf.append(getMessage(menu.getName(),Locale.getDefault()));
                    // buf.append("</a>");
                    // buf.append("<ul>");
                    // parseMenuList(menu.getList(), buf, level+1);
                    // buf.append("</ul>");
                    // buf.append("</li>");
                    // }
                }

            }
        }
    }
}
